.\" Man page generated from reStructuredText.
.
.TH "RBD" "8" "Jan 23, 2022" "dev" "Ceph"
.SH NAME
rbd \- manage rados block device (RBD) images
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH 提纲
.nf
\fBrbd\fP [ \-c \fIceph.conf\fP ] [ \-m \fImonaddr\fP ] [\-\-cluster \fIcluster\-name\fP]
[ \-p | \-\-pool \fIpool\fP ] [ \fIcommand\fP ... ]
.fi
.sp
.SH 描述
.sp
\fBrbd\fP 是个修改 rados 块设备（ RBD ）映像的工具，
QEMU/KVM 通过 Linux 内核驱动和 rbd 存储驱动使用 RBD 。
RBD 映像是简单的块设备，
它被条带化成小块对象后存储于 RADOS 对象存储集群，
条带化后的对象尺寸必须是 2 的幂。
.SH 选项
.INDENT 0.0
.TP
.B \-c ceph.conf, \-\-conf ceph.conf
指定 ceph.conf 配置文件，而不是用默认的 /etc/ceph/ceph.conf
来确定启动时需要的监视器。
.UNINDENT
.INDENT 0.0
.TP
.B \-m monaddress[:port]
连接到指定监视器，无需通过 ceph.conf 查找。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cluster cluster\-name
使用非默认的集群名字，即不是 \fIceph\fP 的集群名。
.UNINDENT
.INDENT 0.0
.TP
.B \-p pool\-name, \-\-pool pool\-name
在指定存储池下操作，大多数命令都得指定。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-namespace namespace\-name
使用存储池内一个预定义的映像命名空间。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-progress
不显示进度（有些命令会默认输出到标准输出）。
.UNINDENT
.SH 参数
.INDENT 0.0
.TP
.B \-\-image\-format format\-id
选择用哪个对象布局，默认为 2 。
.INDENT 7.0
.IP \(bu 2
format 1 \- （已废弃）新建 rbd 映像时使用最初的格式。
此格式兼容所有版本的 librbd 和内核模块，
但是不支持较新的功能，像克隆。
.IP \(bu 2
format 2 \- 使用第二 rbd 格式， librbd 从 Bobtail 版起、内核版本在 3.10 以上（ fancy 条带化功能除外，
4.17 的内核才支持）的内核 rbd 模块才支持此格式。
此格式增加了克隆支持，
使得将来扩展新功能更容易。
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-s size\-in\-M/G/T, \-\-size size\-in\-M/G/T
指定新 rbd 映像、或是已有 rbd 映像的新尺寸，单位可以是
M/G/T ，没加后缀的话默认为 M 。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-object\-size size\-in\-B/K/M
指定对象尺寸，单位可以是 B/K/M 。对象尺寸将被对齐到最接近的
2 的幂；如果不指定后缀，则认为单位是 B 。默认的对象尺寸是
4MB ，最小允许 4K 、最大允许 32M 。
.sp
这个默认值可以用配置选项 \fBrbd_default_order\fP 更改，
它是 2 的幂次（默认对象尺寸是 \fB2 ^ rbd_default_order\fP ）。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-stripe\-unit size\-in\-B/K/M
指定条带单元尺寸，单位可以是 B/K/M ，没加的话默认为 B 。详情见下面的条带化一段。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-stripe\-count num
条带化要至少跨越多少对象才能转回第一个。
详情见条带化一节。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-snap snap
某些操作需要指定快照名。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-id username
指定 map 命令要用到的用户名（不含 \fBclient.\fP 前缀）。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-keyring filename
因 map 命令所需，
指定一个用户及其密钥文件。
如果未指定，从默认密钥环里找。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-keyfile filename
因 map 命令所需，给 \fB\-\-id user\fP 用户指定一个包含密钥的文件。
如果同时指定了 \fB\-\-keyring\fP 选项，本选项就会被覆盖。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-shared lock\-tag
\fIlock add\fP 命令的选项，它允许使用同一标签的多个客户端同时锁住同一映像。标签是任意字符串。
当某映像必须从多个客户端同时打开时，
此选项很有用，
像迁移活动虚拟机时、
或者在集群文件系统下使用时。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-format format
指定输出格式，默认： plain 、 json 、 xml 。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pretty\-format
使 json 或 xml 格式的输出更易读。
.UNINDENT
.INDENT 0.0
.TP
.B \-o krbd\-options, \-\-options krbd\-options
通过 rbd 内核驱动映射或取消映射某一映像时指定的选项。
krbd\-options 是逗号分隔的一系列选项
（类似于 mount(8) 的挂载选项）。
详情见下面的内核 rbd (krbd) 选项一段。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-read\-only
以只读方式映射到映像，等价于 \-o ro 。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-image\-feature feature\-name
创建格式 2 的 RBD 映像时，指定要启用哪些功能。
想要启用多个功能的话，可以多次重复使用此选项。
当前支持下列功能：
.INDENT 7.0
.IP \(bu 2
layering: 支持分层
.IP \(bu 2
striping: 支持条带化 v2
.IP \(bu 2
exclusive\-lock: 支持独占锁
.IP \(bu 2
object\-map: 支持对象映射（依赖 exclusive\-lock ）
.IP \(bu 2
fast\-diff: 快速计算差异（依赖 object\-map ）
.IP \(bu 2
deep\-flatten: 支持快照扁平化操作
.IP \(bu 2
journaling: 支持记录 IO 操作（依赖独占锁）
.IP \(bu 2
data\-pool: 纠删码存储池支持
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-image\-shared
指定该映像将被多个客户端同时使用。
此选项将禁用那些依赖于独占所有权的功能。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-whole\-object
把 diff 操作范围限定在完整的对象条带级别，
而非对象内差异。
当某一映像启用了 object\-map 功能时，
把 diff 操作限定到对象条带会显著地提高性能，
因为通过检查驻留于内存中的对象映射就可以计算出差异，
而无需针对映像内的各个对象查询 RADOS 。
.UNINDENT
.INDENT 0.0
.TP
.B \-\-limit
指定快照的数量上限。
.UNINDENT
.SH 命令
.INDENT 0.0
.TP
\fBbench\fP \-\-io\-type <read | write | readwrite | rw> [\-\-io\-size \fIsize\-in\-B/K/M/G/T\fP] [\-\-io\-threads \fInum\-ios\-in\-flight\fP] [\-\-io\-total \fIsize\-in\-B/K/M/G/T\fP] [\-\-io\-pattern seq | rand] [\-\-rw\-mix\-read \fIread proportion in readwrite\fP] \fIimage\-spec\fP
向指定映像生成一系列 IO 操作，以此衡量 IO 吞吐量和延时。如果不加后缀， \-\-io\-size 和 \-\-io\-total 的单位就当是 B 。默认参数为 \-\-io\-size 4096 、 \-\-io\-threads 16 、 \-\-io\-total 1G 、 \-\-io\-pattern seq 、 \-\-rw\-mix\-read 50 。
.TP
\fBchildren\fP \fIsnap\-spec\fP
列出此映像指定快照的克隆品。它会检查各存储池、并输出存储池名/映像名。
.sp
只适用于 format 2 。
.TP
\fBclone\fP [\-\-object\-size \fIsize\-in\-B/K/M\fP] [\-\-stripe\-unit \fIsize\-in\-B/K/M\fP \-\-stripe\-count \fInum\fP] [\-\-image\-feature \fIfeature\-name\fP] [\-\-image\-shared] \fIparent\-snap\-spec\fP \fIchild\-image\-spec\fP
创建一个父快照的克隆品（写时复制子映像）。
若不指定，对象尺寸将与父映像完全一样。
尺寸和父快照一样。
参数 \-\-stripe\-unit 和 \-\-stripe\-count 是可选的，但必须同时使用。
.sp
父快照必须已被保护（见 \fIrbd snap protect\fP ）。
format 2 格式的映像才支持。
.TP
\fBconfig global get\fP \fIconfig\-entity\fP \fIkey\fP
查看一条全局级的配置选项覆盖。
.TP
\fBconfig global list\fP [\-\-format plain | json | xml] [\-\-pretty\-format] \fIconfig\-entity\fP
罗列全局级的配置选项覆盖。
.TP
\fBconfig global set\fP \fIconfig\-entity\fP \fIkey\fP \fIvalue\fP
设置一条全局级的配置选项覆盖。
.TP
\fBconfig global remove\fP \fIconfig\-entity\fP \fIkey\fP
删除一条全局级的配置选项覆盖。
.TP
\fBconfig image get\fP \fIimage\-spec\fP \fIkey\fP
查看一条映像级的配置选项覆盖。
.TP
\fBconfig image list\fP [\-\-format plain | json | xml] [\-\-pretty\-format] \fIimage\-spec\fP
罗列映像级的配置选项覆盖。.
.TP
\fBconfig image set\fP \fIimage\-spec\fP \fIkey\fP \fIvalue\fP
设置一条映像级的配置选项覆盖。
.TP
\fBconfig image remove\fP \fIimage\-spec\fP \fIkey\fP
删除一条映像级的配置选项覆盖。
.TP
\fBconfig pool get\fP \fIpool\-name\fP \fIkey\fP
查看一条存储池级的配置选项覆盖。
.TP
\fBconfig pool list\fP [\-\-format plain | json | xml] [\-\-pretty\-format] \fIpool\-name\fP
罗列存储池级的配置选项覆盖。.
.TP
\fBconfig pool set\fP \fIpool\-name\fP \fIkey\fP \fIvalue\fP
配置一条存储池级的配置选项覆盖。
.TP
\fBconfig pool remove\fP \fIpool\-name\fP \fIkey\fP
删除一条存储池级的配置选项覆盖。
.TP
\fBcp\fP (\fIsrc\-image\-spec\fP | \fIsrc\-snap\-spec\fP) \fIdest\-image\-spec\fP
把源映像内容复制进新建的目标映像，
目标映像和源映像将有相同的尺寸、对象尺寸和映像格式。
注意：它的快照没有复制，
用 \fIdeep cp\fP 命令包含快照。
.TP
\fBcreate\fP (\-s | \-\-size \fIsize\-in\-M/G/T\fP) [\-\-image\-format \fIformat\-id\fP] [\-\-object\-size \fIsize\-in\-B/K/M\fP] [\-\-stripe\-unit \fIsize\-in\-B/K/M\fP \-\-stripe\-count \fInum\fP] [\-\-thick\-provision] [\-\-no\-progress] [\-\-image\-feature \fIfeature\-name\fP]... [\-\-image\-shared] \fIimage\-spec\fP
新建一个 rbd 映像。还必须用 \-\-size 指定尺寸。 \-\-strip\-unit 和
\-\-strip\-count 参数是可选项，但必须一起用。如果加了
\-\-thick\-provision 选项，它会在创建时就为映像分配所需的所有存储空间，需要很长时间完成。注意：全配（ thick provisioning
）要求把整个映像的内容都清零。
.TP
\fBdeep cp\fP (\fIsrc\-image\-spec\fP | \fIsrc\-snap\-spec\fP) \fIdest\-image\-spec\fP
把 src\-image 的内容深复制到新建的 dest\-image 。 dest\-image
将会有和 src\-image 相同的尺寸、对象尺寸、映像格式、和快照。
.TP
\fBdevice list\fP [\-t | \-\-device\-type \fIdevice\-type\fP] [\-\-format plain | json | xml] \-\-pretty\-format
展示通过 rbd 内核模块映射的 rbd 映像（默认的）或其它支持的设备。
.TP
\fBdevice map\fP [\-t | \-\-device\-type \fIdevice\-type\fP] [\-\-cookie \fIdevice\-cookie\fP] [\-\-show\-cookie] [\-\-read\-only] [\-\-exclusive] [\-o | \-\-options \fIdevice\-options\fP] \fIimage\-spec\fP | \fIsnap\-spec\fP
把指定映像通过 rbd 内核模块映射成一个块设备（默认的）、
或其它支持的设备
（ Linux 上的 \fInbd\fP 或 FreeBSD 上的 \fIggate\fP ）。
.sp
\-\-options 参数是个逗号分隔的特定于某类型设备的一系列选项
（ opt1,opt2=val,... ）。
.TP
\fBdevice unmap\fP [\-t | \-\-device\-type \fIdevice\-type\fP] [\-o | \-\-options \fIdevice\-options\fP] \fIimage\-spec\fP | \fIsnap\-spec\fP | \fIdevice\-path\fP
断开块设备映射，之前通过 rbd 内核模块映射的（默认的）、
或其它支持的设备。
.sp
\-\-options 参数是个逗号分隔的特定于某类型设备的一系列选项
（ opt1,opt2=val,... ）。
.TP
\fBdevice attach\fP [\-t | \-\-device\-type \fIdevice\-type\fP] \-\-device \fIdevice\-path\fP [\-\-cookie \fIdevice\-cookie\fP] [\-\-show\-cookie] [\-\-read\-only] [\-\-exclusive] [\-\-force] [\-o | \-\-options \fIdevice\-options\fP] \fIimage\-spec\fP | \fIsnap\-spec\fP
把指定映像捆绑到指定块设备（当前仅适用于 Linux 上的 \fInbd\fP ）。
此操作不安全，平常不应该使用。
特别是，指定了错误的映像或错误的块设备可能会导致数据损坏，
因为 \fInbd\fP 内核驱动不会进行核实。
.sp
\-\-options 参数是一个逗号分隔的、特定于设备类型的选项
（ opt1,opt2=val,... ）列表。
.TP
\fBdevice detach\fP [\-t | \-\-device\-type \fIdevice\-type\fP] [\-o | \-\-options \fIdevice\-options\fP] \fIimage\-spec\fP | \fIsnap\-spec\fP | \fIdevice\-path\fP
解绑之前映射或绑定（当前仅适用于 Linux 上的 \fInbd\fP ）的块设备。
此操作不安全，平常不应该使用。
.sp
\-\-options 参数是一个逗号分隔的、特定于设备类型的选项
（ opt1,opt2=val,... ）列表。
.TP
\fBdiff\fP [\-\-from\-snap \fIsnap\-name\fP] [\-\-whole\-object] \fIimage\-spec\fP | \fIsnap\-spec\fP
打印出从指定快照点起、或从映像创建点起，映像内的变动区域。
输出的各行都包含起始偏移量（按字节）、
数据块长度（按字节）、还有 zero 或 data ，
用来指示此范围以前是 0 还是其它数据。
.TP
\fBdu\fP [\-p | \-\-pool \fIpool\-name\fP] [\fIimage\-spec\fP | \fIsnap\-spec\fP] [\-\-merge\-snapshots]
会计算指定存储池内所有映像及其相关快照的磁盘使用量，
包括分配的和实际使用的。
此命令也可用于单个映像和快照。
.sp
如果 RBD 映像的 fast\-diff 特性没启用，本操作就需要向各个 OSD
挨个查询此映像涉及的每个潜在对象。
.sp
\-\-merge\-snapshots 会把快照占用的空间算到它的父映像头上。
.TP
\fBencryption format\fP \fIimage\-spec\fP \fIformat\fP \fIpassphrase\-file\fP [\-\-cipher\-alg \fIalg\fP]
把映像格式化成加密格式。
之前写入此映像的所有数据都将不可读。
虽然加密的映像可以被克隆，但是克隆的映像不能被格式化。
支持的格式有： \fIluks1\fP 、 \fIluks2\fP 。
支持的加密算法： \fIaes\-128\fP 、 \fIaes\-256\fP （默认）。
.TP
\fBexport\fP [\-\-export\-format \fIformat (1 or 2)\fP] (\fIimage\-spec\fP | \fIsnap\-spec\fP) [\fIdest\-path\fP]
把映像导出到目的路径，用 \- （短线）输出到标准输出。
\-\-export\-format 现在只认 \(aq1\(aq 或 \(aq2\(aq 。格式 2 不仅允许我们导出映像内容，还可以导出快照和其它属性，如 image_order 、功能标志。
.TP
\fBexport\-diff\fP [\-\-from\-snap \fIsnap\-name\fP] [\-\-whole\-object] (\fIimage\-spec\fP | \fIsnap\-spec\fP) \fIdest\-path\fP
导出一映像的增量差异，用\-导出到标准输出。
若给了起始快照，就只包含与此快照的差异部分；
否则包含映像的所有数据部分；
结束快照用 \-\-snap 选项或 @snap （见下文）指定。
此映像的差异格式包含了映像尺寸变更的元数据、起始和结束快照，
它高效地表达了被忽略或映像内的全 0 区域。
.TP
\fBfeature disable\fP \fIimage\-spec\fP \fIfeature\-name\fP\&...
禁用指定镜像的某些功能，
可以一次指定多个功能。
.TP
\fBfeature enable\fP \fIimage\-spec\fP \fIfeature\-name\fP\&...
启用指定镜像的某些功能，
可以一次指定多个功能。
.TP
\fBflatten\fP \fIimage\-spec\fP
如果映像是个克隆品，就从父快照拷贝所有共享块，
并使子快照独立于父快照、切断父子快照间的链接。
如果没有克隆品引用此父快照了，
就可以取消保护并删除。
.sp
只适用于 format 2 。
.TP
\fBgroup create\fP \fIgroup\-spec\fP
创建一个组。
.TP
\fBgroup image add\fP \fIgroup\-spec\fP \fIimage\-spec\fP
把一个映像加入某一组。
.TP
\fBgroup image list\fP \fIgroup\-spec\fP
罗列一个组内的映像。
.TP
\fBgroup image remove\fP \fIgroup\-spec\fP \fIimage\-spec\fP
删除一个组内的对象。
.TP
\fBgroup ls\fP [\-p | \-\-pool \fIpool\-name\fP]
罗列所有 rbd 组。
.TP
\fBgroup rename\fP \fIsrc\-group\-spec\fP \fIdest\-group\-spec\fP
重命名一个组。注意：不支持跨存储池重命名。
.TP
\fBgroup rm\fP \fIgroup\-spec\fP
删除一个组。
.TP
\fBgroup snap create\fP \fIgroup\-snap\-spec\fP
创建一个组的快照。
.TP
\fBgroup snap list\fP \fIgroup\-spec\fP
罗列一个组的快照。
.TP
\fBgroup snap rm\fP \fIgroup\-snap\-spec\fP
删除一个组的某一快照。
.TP
\fBgroup snap rename\fP \fIgroup\-snap\-spec\fP \fIsnap\-name\fP
重命名组的快照。
.TP
\fBgroup snap rollback\fP \fIgroup\-snap\-spec\fP
把组回滚到某快照。
.TP
\fBimage\-meta get\fP \fIimage\-spec\fP \fIkey\fP
获取关键字对应的元数据值。
.TP
\fBimage\-meta list\fP \fIimage\-spec\fP
显示此映像持有的元数据。第一列是关键字、第二列是值。
.TP
\fBimage\-meta remove\fP \fIimage\-spec\fP \fIkey\fP
删除元数据关键字及其值。
.TP
\fBimage\-meta set\fP \fIimage\-spec\fP \fIkey\fP \fIvalue\fP
设置指定元数据关键字的值，会显示在 \fImetadata\-list\fP 中。
.TP
\fBimport\fP [\-\-export\-format \fIformat (1 or 2)\fP] [\-\-image\-format \fIformat\-id\fP] [\-\-object\-size \fIsize\-in\-B/K/M\fP] [\-\-stripe\-unit \fIsize\-in\-B/K/M\fP \-\-stripe\-count \fInum\fP] [\-\-image\-feature \fIfeature\-name\fP]... [\-\-image\-shared] \fIsrc\-path\fP [\fIimage\-spec\fP]
创建一映像，并从目的路径导入数据，用 \- （短线）从标准输入导入。
如果可能的话，导入操作会试着创建稀疏映像。
如果从标准输入导入，稀疏化单位将是目标映像的数据块尺寸
（即对象尺寸）。
.sp
参数 \-\-stripe\-unit 和 \-\-stripe\-count 是可选的，
但必须同时使用。
.sp
\-\-export\-format 现在只认 \(aq1\(aq 或 \(aq2\(aq 。格式 2 不仅允许我们导出映像内容，还可以导出快照和其它属性，如 image_order 、功能标志。
.TP
\fBimport\-diff\fP \fIsrc\-path\fP \fIimage\-spec\fP
导入一映像的增量差异并应用到当前映像。
如果此差异是在起始快照基础上生成的，我们会先校验那个已存在快照再继续；
如果指定了结束快照，我们先检查它是否存在、再应用变更，
结束后再创建结束快照。
.TP
\fBinfo\fP \fIimage\-spec\fP | \fIsnap\-spec\fP
显示指定 rbd 映像的信息（如大小和对象尺寸）。
若映像是克隆品，会显示相关父快照；
若指定了快照，会显示是否被保护。
.TP
\fBjournal client disconnect\fP \fIjournal\-spec\fP
把映像日志客户端标记为连接已断。
.TP
\fBjournal export\fP [\-\-verbose] [\-\-no\-error] \fIsrc\-journal\-spec\fP \fIpath\-name\fP
把映像日志导出到指定路径（ \fB\-\fP 导出到标准输出 stdout ）。它可以作为映像日志的备份手段，特别是打算做危险的操作前。
.sp
注意，如果日志损坏严重，此命令有可能失效。
.TP
\fBjournal import\fP [\-\-verbose] [\-\-no\-error] \fIpath\-name\fP \fIdest\-journal\-spec\fP
从指定路径导入映像日志（ \fB\-\fP 从标准输入 stdin 导入）。
.TP
\fBjournal info\fP \fIjournal\-spec\fP
展示映像日志的信息。
.TP
\fBjournal inspect\fP [\-\-verbose] \fIjournal\-spec\fP
检查并报告映像日志的结构性错误。
.TP
\fBjournal reset\fP \fIjournal\-spec\fP
重置映像日志。
.TP
\fBjournal status\fP \fIjournal\-spec\fP
展示映像日志的状态。
.TP
\fBlock add\fP [\-\-shared \fIlock\-tag\fP] \fIimage\-spec\fP \fIlock\-id\fP
为映像加锁，锁标识是用户一己所好的任意名字。
默认加的是互斥锁，也就是说如果已经加过锁的话此命令会失败；
\-\-shared 选项会改变此行为。
注意，加锁操作本身不影响除加锁之外的任何操作，
也不会保护对象、
防止它被删除。
.TP
\fBlock ls\fP \fIimage\-spec\fP
显示锁着映像的锁，
第一列是 \fIlock remove\fP 可以使用的锁名。
.TP
\fBlock rm\fP \fIimage\-spec\fP \fIlock\-id\fP \fIlocker\fP
释放映像上的锁。
锁标识和其持有者来自 lock ls 。
.TP
\fBls\fP [\-l | \-\-long] [\fIpool\-name\fP]
列出 rbd_directory 对象中的所有 rbd 映像。加 \-l 选项后也会列出快照，并用长格式输出，包括大小、父映像（若是克隆品）、格式等等。
.TP
\fBmerge\-diff\fP \fIfirst\-diff\-path\fP \fIsecond\-diff\-path\fP \fImerged\-diff\-path\fP
把两个连续的增量差异合并为单个差异。前一个差异的末尾快照必须与后一个差异的起始快照相同。前一个差异可以是标准输入 \- ，合并后的差异可以是标准输出 \- ；这样就可以合并多个差异文件，像这样： \(aqrbd merge\-diff first second \- | rbd merge\-diff \- third result\(aq 。注意，当前此命令只支持 stripe_count == 1 这样的源增量差异。
.TP
\fBmigration abort\fP \fIimage\-spec\fP
取消映像迁移。这个步骤在成功或失败的迁移准备、
各个迁移执行步骤之后运行，
并让映像回到它最初（迁移前）的状态。
目的映像的所有更改都将丢失。
.TP
\fBmigration commit\fP \fIimage\-spec\fP
提交映像迁移。这个步骤在成功的迁移准备、
迁移执行的各个步骤、并删除源映像数据后运行。
.TP
\fBmigration execute\fP \fIimage\-spec\fP
执行映像迁移。这个步骤在成功的迁移准备步骤、
并把映像数据复制到目的地之后运行。
.TP
\fBmigration prepare\fP [\-\-order \fIorder\fP] [\-\-object\-size \fIobject\-size\fP] [\-\-image\-feature \fIimage\-feature\fP] [\-\-image\-shared] [\-\-stripe\-unit \fIstripe\-unit\fP] [\-\-stripe\-count \fIstripe\-count\fP] [\-\-data\-pool \fIdata\-pool\fP] [\-\-import\-only] [\-\-source\-spec \fIjson\fP] [\-\-source\-spec\-path \fIpath\fP] \fIsrc\-image\-spec\fP [\fIdest\-image\-spec\fP]
准备映像迁移。这是迁移一个映像的第一步，
即改变映像的位置，格式或其它参数不能动态更改。
在目标和源的规格一致时，可以忽略 \fIdest\-image\-spec\fP 。
本步骤之后，源映像将被设置成目标映像的父映像，
这个映像将可以按照目标规格、
通过写时复制模式访问。
.sp
映像也可以从一个只读导入源迁移，
加可选的 \fI\-\-import\-only\fP 、
并加上 JSON 编码的 \fI\-\-source\-spec\fP 或用 \fI\-\-source\-spec\-path\fP 指定一个 JSON 编码的源规格文件路径。
.TP
\fBmirror image demote\fP \fIimage\-spec\fP
把 RBD 映像中的主映像降级成非主映像。
.TP
\fBmirror image disable\fP [\-\-force] \fIimage\-spec\fP
禁用一个映像的 RBD 镜像服务。
如果镜像服务是在 \fBimage\fP 模式下在镜像存储池上配置的，
那该存储池内各个映像的镜像服务就可以显式地禁用。
.TP
\fBmirror image enable\fP \fIimage\-spec\fP \fImode\fP
启用一个映像的 RBD 镜像服务。
如果镜像服务是在 \fBimage\fP 模式下在镜像存储池上配置的，
那该存储池内各个映像的镜像服务就可以显式地启用。
.sp
镜像映像的模式还可以是 \fBjournal\fP （默认的）
或 \fBsnapshot\fP 。 \fBjournal\fP 模式依赖
RBD 的日志记录功能。
.TP
\fBmirror image promote\fP [\-\-force] \fIimage\-spec\fP
为 RBD 镜像服务把一个非主映像晋级成主的。
.TP
\fBmirror image resync\fP \fIimage\-spec\fP
在 RBD 镜像中，强制重新同步到主映像。
.TP
\fBmirror image status\fP \fIimage\-spec\fP
显示一个映像的 RBD 镜像状态。
.TP
\fBmirror pool demote\fP [\fIpool\-name\fP]
把一个存储池内的所有主映像都降级成非主的。
存储池内每个启用了镜像服务的映像都会被降级。
.TP
\fBmirror pool disable\fP [\fIpool\-name\fP]
默认禁用一个存储池的 RBD 镜像服务。
某个存储池的镜像服务以这种方式禁用后，
此存储池内的所有映像的镜像、包括那些显式地启用了镜像服务的也会禁用。
.TP
\fBmirror pool enable\fP [\fIpool\-name\fP] \fImode\fP
启用一个存储池的默认镜像。
镜像模式可以是 \fBpool\fP 或 \fBimage\fP 。
如果配置成了 \fBpool\fP 模式，存储池内所有开启了日志功能的映像都会被镜像；
如果配置成了 \fBimage\fP 模式，
每个映像的镜像功能都需要显式地启用
（用 \fBmirror image enable\fP 命令）。
.TP
\fBmirror pool info\fP [\fIpool\-name\fP]
显示出存储池的镜像服务配置信息。
它包括镜像模式、互联的 UUID 、
远程集群名字和远程客户端名字。
.TP
\fBmirror pool peer add\fP [\fIpool\-name\fP] \fIremote\-cluster\-spec\fP
给存储池增加一个镜像互联点。
\fIremote\-cluster\-spec\fP 是 [\fI远程客户端名\fP@]\fI远程集群名\fP\&.
.sp
\fI远程客户端名\fP 默认是 client.admin 。
.sp
此命令要求先启用镜像模式。
.TP
\fBmirror pool peer remove\fP [\fIpool\-name\fP] \fIuuid\fP
删除一个存储池的镜像互联点，此互联点的 uuid 可以通过 \fBmirror pool info\fP 获取。
.TP
\fBmirror pool peer set\fP [\fIpool\-name\fP] \fIuuid\fP \fIkey\fP \fIvalue\fP
更新镜像互联点配置信息。
键（ key ）是 \fBclient\fP 或 \fBcluster\fP ，
值对应远程客户端名或远程集群名。
.TP
\fBmirror pool promote\fP [\-\-force] [\fIpool\-name\fP]
把一个存储池内的所有非主映像晋级成主的。
此存储池里所有启用了镜像服务的映像都会晋级。
.TP
\fBmirror pool status\fP [\-\-verbose] [\fIpool\-name\fP]
显示此存储池内所有被镜像的映像的状态。
加 \-\-verbose 选项后，还会显示存储池内、
所有启用了镜像的映像的额外状态细节。
.TP
\fBmirror snapshot schedule add\fP [\-p | \-\-pool \fIpool\fP] [\-\-namespace \fInamespace\fP] [\-\-image \fIimage\fP] \fIinterval\fP [\fIstart\-time\fP]
预定镜像快照。
.TP
\fBmirror snapshot schedule list\fP [\-R | \-\-recursive] [\-\-format \fIformat\fP] [\-\-pretty\-format] [\-p | \-\-pool \fIpool\fP] [\-\-namespace \fInamespace\fP] [\-\-image \fIimage\fP]
罗列镜像快照的预定情况。
.TP
\fBmirror snapshot schedule remove\fP [\-p | \-\-pool \fIpool\fP] [\-\-namespace \fInamespace\fP] [\-\-image \fIimage\fP] \fIinterval\fP [\fIstart\-time\fP]
删除镜像快照的预定任务。
.TP
\fBmirror snapshot schedule status\fP [\-p | \-\-pool \fIpool\fP] [\-\-format \fIformat\fP] [\-\-pretty\-format] [\-\-namespace \fInamespace\fP] [\-\-image \fIimage\fP]
显示镜像快照的预定状态。
.TP
\fBmv\fP \fIsrc\-image\-spec\fP \fIdest\-image\-spec\fP
映像改名。注：不支持跨存储池。
.TP
\fBnamespace create\fP \fIpool\-name\fP/\fInamespace\-name\fP
在存储池内新建一个映像命名空间。
.TP
\fBnamespace list\fP \fIpool\-name\fP
罗列存储池内定义的映像命名空间。
.TP
\fBnamespace remove\fP \fIpool\-name\fP/\fInamespace\-name\fP
从存储池删除一个空的映像命名空间。
.TP
\fBobject\-map check\fP \fIimage\-spec\fP | \fIsnap\-spec\fP
核验对象映射图是否正确。
.TP
\fBobject\-map rebuild\fP \fIimage\-spec\fP | \fIsnap\-spec\fP
为指定映像重建无效的对象映射关系。指定映像快照时，
将为此快照重建无效的对象映射关系。
.TP
\fBpool init\fP [\fIpool\-name\fP] [\-\-force]
初始化用于 RBD 的存储池。
新建的存储池必须先初始化才能使用。
.TP
\fBresize\fP (\-s | \-\-size \fIsize\-in\-M/G/T\fP) [\-\-allow\-shrink] \fIimage\-spec\fP
rbd 大小调整。尺寸参数必须指定；
\-\-allow\-shrink 选项允许缩小。
.TP
\fBrm\fP \fIimage\-spec\fP
删除一 rbd 映像，包括所有数据块。如果此映像有快照，此命令会失效，什么也不会删除。
.TP
\fBsnap create\fP \fIsnap\-spec\fP
新建一快照。需指定快照名。
.TP
\fBsnap limit clear\fP \fIimage\-spec\fP
清除先前设置的映像所允许的快照数量上限。
.TP
\fBsnap limit set\fP [\-\-limit] \fIlimit\fP \fIimage\-spec\fP
设置一个映像所允许的快照数量上限。
.TP
\fBsnap ls\fP \fIimage\-spec\fP
列出一映像内的快照。
.TP
\fBsnap protect\fP \fIsnap\-spec\fP
保护快照，防删除，这样才能从它克隆（见 \fIrbd clone\fP ）。
做克隆前必须先保护快照，
保护意味着克隆出的子快照依赖于此快照。
\fIrbd clone\fP 不能在未保护的快照上操作。
.sp
只适用于 format 2 。
.TP
\fBsnap purge\fP \fIimage\-spec\fP
删除一映像的所有未保护快照。
.TP
\fBsnap rename\fP \fIsrc\-snap\-spec\fP \fIdest\-snap\-spec\fP
重命名一个快照。注意：不支持跨存储池和跨映像重命名。
.TP
\fBsnap rm\fP [\-\-force] \fIsnap\-spec\fP
删除指定快照。
.TP
\fBsnap rollback\fP \fIsnap\-spec\fP
把指定映像回滚到快照。此动作会递归整个块阵列，
并把数据头内容更新到快照版本。
.TP
\fBsnap unprotect\fP \fIsnap\-spec\fP
取消对快照的保护（撤销 \fIsnap protect\fP ）。如果还有克隆出的子快照尚在， \fIsnap unprotect\fP 命令会失效。（注意克隆品可能位于不同于父快照的存储池。）
.sp
只适用于 format 2 。
.TP
\fBsparsify\fP [\-\-sparse\-size \fIsparse\-size\fP] \fIimage\-spec\fP
回收已被清零的映像条带所占的空间。
默认的稀疏尺寸为 4096 字节，可用 \-\-sparse\-size 选项更改，
但有这些限制条件：它应该是 2 幂、不小于 4096 、
且不大于映像的对象尺寸。
.TP
\fBstatus\fP \fIimage\-spec\fP
显示映像状态，包括哪个客户端打开着它。
.TP
\fBtrash ls\fP [\fIpool\-name\fP]
罗列垃圾桶内的所有条目。
.TP
\fBtrash mv\fP \fIimage\-spec\fP
把映像移入垃圾桶。所有映像，包括正被克隆件引用的，
都能被移入垃圾桶，而后删除。
.TP
\fBtrash purge\fP [\fIpool\-name\fP]
删除垃圾桶内所有过期的映像。
.TP
\fBtrash restore\fP \fIimage\-id\fP
从垃圾桶恢复一个映像。
.TP
\fBtrash rm\fP \fIimage\-id\fP
从垃圾桶删除一个映像。如果映像的延期时间尚未满，
那就不能删除，除非强删。但是正被克隆件引用的、
或还有快照的删不掉。
.TP
\fBtrash purge schedule add\fP [\-p | \-\-pool \fIpool\fP] [\-\-namespace \fInamespace\fP] \fIinterval\fP [\fIstart\-time\fP]
预定一次垃圾清理。
.TP
\fBtrash purge schedule list\fP [\-R | \-\-recursive] [\-\-format \fIformat\fP] [\-\-pretty\-format] [\-p | \-\-pool \fIpool\fP] [\-\-namespace \fInamespace\fP]
罗列垃圾清理的预定情况。
.TP
\fBtrash purge schedule remove\fP [\-p | \-\-pool \fIpool\fP] [\-\-namespace \fInamespace\fP] \fIinterval\fP [\fIstart\-time\fP]
删除垃圾清理的预定任务。
.TP
\fBtrash purge schedule status\fP [\-p | \-\-pool \fIpool\fP] [\-\-format \fIformat\fP] [\-\-pretty\-format] [\-\-namespace \fInamespace\fP]
显示垃圾清理的预定状态。
.TP
\fBwatch\fP \fIimage\-spec\fP
盯着有关此映像的事件。
.UNINDENT
.SH 映像、快照、组和日志的名称规范
.nf
\fIimage\-spec\fP      is [\fIpool\-name\fP/[\fInamespace\-name\fP/]]\fIimage\-name\fP
\fIsnap\-spec\fP       is [\fIpool\-name\fP/[\fInamespace\-name\fP/]]\fIimage\-name\fP@\fIsnap\-name\fP
\fIgroup\-spec\fP      is [\fIpool\-name\fP/[\fInamespace\-name\fP/]]\fIgroup\-name\fP
\fIgroup\-snap\-spec\fP is [\fIpool\-name\fP/[\fInamespace\-name\fP/]]\fIgroup\-name\fP@\fIsnap\-name\fP
\fIjournal\-spec\fP    is [\fIpool\-name\fP/[\fInamespace\-name\fP/]]\fIjournal\-name\fP
.fi
.sp
.sp
\fIpool\-name\fP 的默认值是 rbd 、 \fInamespace\-name\fP 默认是 "" （为空）。
如果某个映像名包含斜杠字符（ / ），那么还必须指定 \fIpool\-name\fP 。
.sp
\fIjournal\-name\fP 是 \fIimage\-id\fP 。
.sp
你可以用 \-\-pool 、 \-\-namespace 、 \-\-image 和 \-\-snap 选项分别指定各个名字，但是不鼓励这样用，大家还是倾向于上面的规范语法。
.SH 条带化
.sp
RBD 映像被条带化到很多对象，然后存储到 Ceph 分布式对象存储（ RADOS ）集群中。
因此，到此映像的读和写请求会被分布到集群内的很多节点，
也因此避免了映像巨大或繁忙时可能出现的单节点瓶颈。
.sp
条带化由三个参数控制：
.INDENT 0.0
.TP
.B object\-size
条带化产生的对象尺寸是 2 的幂，它会被对齐到最接近的 2 的幂。
默认对象尺寸是 4MB ，最小是 4K 、最大 32 M 。
.UNINDENT
.INDENT 0.0
.TP
.B stripe_unit
各条带单位是连续的字节，相邻地存储于同一对象，用满再去下一个对象。
.UNINDENT
.INDENT 0.0
.TP
.B stripe_count
我们把 [\fIstripe_unit\fP] 个字节写够 [\fIstripe_count\fP] 个对象后，再转回到第一个对象写另一轮条带，直到达到对象的最大尺寸。此时，我们继续写下一轮 [\fIstripe_count\fP] 个对象。
.UNINDENT
.sp
默认情况下， [\fIstripe_unit\fP] 和对象尺寸相同、且 [\fIstripe_count\fP] 为 1 ；
另外指定 [\fIstripe_unit\fP] 和/或 [\fIstripe_count\fP] 通常出现在使用 fancy 条带化时、
而且必须是 format 2 格式的映像。
.SH 内核 RBD (KRBD) 选项
.sp
这里的大多数选项主要适用于调试和压力测试。默认值设置于内核中，因此还与所用内核的版本有关。
.sp
每个客户端例程的 \fIrbd device map\fP 选项：
.INDENT 0.0
.IP \(bu 2
fsid=aaaaaaaa\-bbbb\-cccc\-dddd\-eeeeeeeeeeee \- 应该由客户端提供的 FSID 。
.IP \(bu 2
ip=a.b.c.d[:p] \- IP 还有客户端可选的端口。
.IP \(bu 2
share \- 允许与其它映射共享客户端例程（默认）。
.IP \(bu 2
noshare \- 禁止与其它映射共享客户端例程。
.IP \(bu 2
crc \- 对 msgr1 线上协议来说，启用 CRC32C 校验和（默认）；
对 msgr2.1 协议来说，会忽略此选项： crc 模式下总是完全开启校验和、 secure 模式下总是关闭。
.IP \(bu 2
nocrc \- 对 msgr1 线上协议禁用 CRC32C 校验。注意，
只是禁用了载荷校验，头校验一直开启。
msgr2.1 协议忽略此选项。
.IP \(bu 2
cephx_require_signatures \- 要求对 msgr1 消息签名（从 3.19 起默认开启）。此选项已废弃，且未来会删除，
因为此功能从 Bobtail 版起就支持了。
.IP \(bu 2
nocephx_require_signatures \- 不要求对 msgr1 消息签名
（从 3.19 起）。此选项已废弃，且未来会删除，
.IP \(bu 2
tcp_nodelay \- 在客户端禁用 Nagle\(aqs 算法
（从 4.0 起默认开启）。
.IP \(bu 2
notcp_nodelay \- 在客户端启用 Nagle\(aqs 算法（从 4.0 起）。
.IP \(bu 2
cephx_sign_messages \- 为 msgr1 协议启用消息签名
（从 4.4 起默认开启）。使用 msgr2 协议时会忽略此选项：
消息签名功能包含在 \(aqsecure\(aq 模式里、而 \(aqcrc\(aq 模式里没有。
.IP \(bu 2
nocephx_sign_messages \- 为 msgr1 线路协议禁用消息签名
（从 4.4 起）。使用 msgr2 协议时会忽略此选项。
.IP \(bu 2
mount_timeout=x \- 执行 \fIrbd device map\fP 和 \fIrbd device unmap\fP
时所涉及的各操作步骤的超时值（默认为 60 秒）。
特别是从 4.2 起，与集群间没有连接时，
即认为 \fIrbd device unmap\fP 操作超时了。
.IP \(bu 2
osdkeepalive=x \- OSD 保持连接的期限（默认为 5 秒）。
.IP \(bu 2
osd_idle_ttl=x \- OSD 闲置 TTL （默认为 60 秒）。
.UNINDENT
.sp
每个映射（块设备）的 \fIrbd device map\fP 选项：
.INDENT 0.0
.IP \(bu 2
rw \- 以读写方式映射映像（默认）。会被 \-\-read\-only 覆盖。
.IP \(bu 2
ro \- 以只读方式映射映像，等价于 \-\-read\-only 。
.IP \(bu 2
queue_depth=x \- 队列深度（从 4.2 起默认为 128 个请求）。
.IP \(bu 2
lock_on_read \- 除写入和 discard 操作外，读取时也要获取独占锁（从 4.9 起）。
.IP \(bu 2
exclusive \- 禁止自动转换互斥锁（从 4.12 起）。
等价于 \-\-exclusive 。
.IP \(bu 2
lock_timeout=x \- 获取互斥锁的超时时长
（ 4.17 起支持，默认是 0 秒，意味着没有超时）。
.IP \(bu 2
notrim \- 关闭 discard 、和填 0 功能，
以免全配映像的空间被收回（从 4.17 起支持）。
启用后， discard 请求会以 \-EOPNOTSUPP 代码失败，
填 0 请求会回退成手动填 0 。
.IP \(bu 2
abort_on_full \- 在集群空间用尽或数据存储池用完配额时让写请求以 \-ENOSPC 代码失败（从 5.0 起支持）。
默认行为是阻塞着，直到占满条件释放。
.IP \(bu 2
alloc_size \- OSD 底层对象存储后端的最小分配单元
（从 5.1 起支持，默认为 64KB ）。
这是用于对齐数据块和丢弃太小的 discard 操作。对于 bluestore ，
推荐的配置是 bluestore_min_alloc_size （一般来说，硬盘是 64K 、 SSD 是 16K ）；
filestore 用 filestore_punch_hole = false 配置，
推荐的配置是映像对象尺寸（一般是 4M ）。
.IP \(bu 2
crush_location=x \- 指定客户端在 CRUSH 分级结构（从 5.8 起）里的位置。
这是用 \(aq|\(aq 分隔的一系列键值对，键名和值之间用 \(aq:\(aq 分隔。
注意， \(aq|\(aq 可能得用引号包起来、或者转义（即 \(aq|\(aq ），
以免被 shell 解释为管道。键名是桶类型的名字
（比如 rack 、 datacenter 、或者 region ，
它是默认桶类型）、而值对应桶名字。
例如，要表面客户端是本地的， rack 为 myrack 、
数据中心为 mydc 、 region 是 myregion:
.INDENT 2.0
.INDENT 3.5
.sp
.nf
.ft C
crush_location=rack:myrack|datacenter:mydc|region:myregion
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
每一个键值对都是独立的： myrack 不一定位于 mydc 内、因此也不一定位于 myregion 内。
这个位置不是到分级结构根（ root ）的路径，而是一系列独立匹配到的节点，
多亏了桶名在 CRUSH 图里唯一这个特性。
多路径（ multipath ）位置也可以，因此可以为多个并行的分级结构定义位置：
.INDENT 2.0
.INDENT 3.5
.sp
.nf
.ft C
crush_location=rack:myrack1|rack:myrack2|datacenter:mydc
.ft P
.fi
.UNINDENT
.UNINDENT
.IP \(bu 2
read_from_replica=no \- 禁用副本读取，总是选取主 OSD
（从 5.8 起是默认行为）。
.IP \(bu 2
read_from_replica=balance \- 向多副本存储池发出读取请求时，
随机选一个 OSD 提供服务（从 5.8 开始支持）。
.sp
只有在 Octopus 之后（即 \fBceph osd require\-osd\-release octopus\fP 之后）的版本上，
这个模式才可以安全地作为一般用途。否则，就应该仅限于只读载荷，
比如只读地映射出去的映像、或快照。
.IP \(bu 2
read_from_replica=localize \- 向多副本存储池发出读取请求时，
选最近的 OSD 提供服务（从 5.8 开始支持）。
位置指标根据客户端的 crush_location 位置计算出来；
匹配到的级别最低的桶类型胜出。例如，在默认的桶类型中，
一个匹配到 rack 的 OSD 比匹配到数据中心的 OSD 更近，
自然也比匹配到 region 的 OSD 近。
.sp
只有在 Octopus 之后（即 \fBceph osd require\-osd\-release octopus\fP 之后）的版本上，
这个模式才可以安全地作为一般用途。否则，就应该仅限于只读载荷，
比如只读地映射出去的映像、或快照。
.IP \(bu 2
compression_hint=none \- 不设置压缩提示（从 5.8 起支持，默认的）。
.IP \(bu 2
compression_hint=compressible \- 提示底层的 OSD 对象存储后端，
告诉它数据可以压缩，在被动模式下启用了压缩功能
（从 5.8 起支持）。
.IP \(bu 2
compression_hint=incompressible \- 提示底层的 OSD 对象存储后端，
告诉它数据不可压缩，在激进模式下禁用了压缩功能
（从 5.8 起支持）。
.IP \(bu 2
ms_mode=legacy \- 采用 msgr1 线路协议（从 5.11 起支持，默认的）。
.IP \(bu 2
ms_mode=crc \- 采用 msgr2.1 线路协议，选择 crc 模式，
也叫明文模式（从 5.11 起支持）。如果守护进程拒绝 crc 模式，
连接会失败。
.IP \(bu 2
ms_mode=secure \- 采用 msgr2.1 线路协议，选择 secure 模式
（从 5.11 起支持）。 secure 模式提供了完整的传输加密，
可以同时确保保密性和真实性。如果守护进程拒绝 secure 模式，
连接会失败。
.IP \(bu 2
ms_mode=prefer\-crc \- 采用 msgr2.1 线路协议，选择 crc 模式
（从 5.11 起支持）。如果守护进程拒绝了 crc 模式而选择 secure 模式，
那就用 secure 模式。
.IP \(bu 2
ms_mode=prefer\-secure \- 采用 msgr2.1 线路协议，选择 secure 模式
（从 5.11 起支持）。如果守护进程拒绝了 secure 模式而选择 crc 模式，
那就用 crc 模式。
.IP \(bu 2
udev \- 等着 udev 设备管理器，让它执行完所有能匹配 "add" 的规则、并在退出前释放设备（默认的）。
这个选项不是传递给内核的。
.IP \(bu 2
noudev \- 不要等待 udev 设备管理器。打开此选项后，
退出之后，设备可能不会立即恢复完全可用的状态。
.UNINDENT
.sp
\fIrbd device unmap\fP 选项：
.INDENT 0.0
.IP \(bu 2
force \- 让某一已打开的块设备强制取消映射（从 4.9 起支持）。
其驱动会等待当前的请求完成之后再 unmap ；
在 unmap 初始化之后再发给驱动的请求会失败。
.IP \(bu 2
udev \- 等着 udev 设备管理器，让它执行完所有能匹配 "add" 的规则、并在退出前释放设备（默认的）。
这个选项不是传递给内核的。
.IP \(bu 2
noudev \- 不要等待 udev 设备管理器。
.UNINDENT
.SH 实例
.sp
要新建一 100GB 的 rbd 映像：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd create mypool/myimage \-\-size 102400
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
用个非默认对象尺寸，8 MB：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd create mypool/myimage \-\-size 102400 \-\-object\-size 8M
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
删除一 rbd 映像（谨慎啊！）：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd rm mypool/myimage
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
新建快照：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd snap create mypool/myimage@mysnap
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
创建已保护快照的写时复制克隆：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd clone mypool/myimage@mysnap otherpool/cloneimage
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
查看快照有哪些克隆品：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd children mypool/myimage@mysnap
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
删除快照：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd snap rm mypool/myimage@mysnap
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
启用 cephx 时通过内核映射一映像：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd device map mypool/myimage \-\-id admin \-\-keyfile secretfile
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
要通过内核把某一映像映射到没用默认名字 \fIceph\fP 的集群：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd device map mypool/myimage \-\-cluster cluster\-name
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
取消映像映射：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd device unmap /dev/rbd0
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
创建一映像及其克隆品：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd import \-\-image\-format 2 image mypool/parent
rbd snap create mypool/parent@snap
rbd snap protect mypool/parent@snap
rbd clone mypool/parent@snap otherpool/child
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
新建一 stripe_unit 较小的映像（在某些情况下可更好地分布少量写）：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd create mypool/myimage \-\-size 102400 \-\-stripe\-unit 65536B \-\-stripe\-count 16
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
要改变某一映像的格式，先导出它、然后再导入成期望的映像格式:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd export mypool/myimage@snap /tmp/img
rbd import \-\-image\-format 2 /tmp/img mypool/myimage2
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
互斥地锁住一映像：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd lock add mypool/myimage mylockid
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
释放锁：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd lock remove mypool/myimage mylockid client.2485
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
罗列垃圾桶里的映像：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd trash ls mypool
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
推迟删除一个映像（用 \fI\-\-expires\-at\fP 设置一个过期时间，默认是现在）：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd trash mv mypool/myimage \-\-expires\-at "tomorrow"
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
从垃圾桶删除一个映像（谨慎啊！）：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd trash rm mypool/myimage\-id
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
从垃圾桶强行删除一个映像（谨慎啊！）：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd trash rm mypool/myimage\-id  \-\-force
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
从垃圾桶恢复一个映像：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd trash restore mypool/myimage\-id
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
从垃圾桶恢复一个映像、并给它改个名字：
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
rbd trash restore mypool/myimage\-id \-\-image mynewimage
.ft P
.fi
.UNINDENT
.UNINDENT
.SH 使用范围
.sp
\fBrbd\fP 是 Ceph 的一部分，这是个伸缩力强、开源、
分布式的存储系统，更多信息参见 \fI\%https://docs.ceph.com\fP 。
.SH 参考
.sp
ceph(8),
rados(8)
.SH COPYRIGHT
2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0)
.\" Generated by docutils manpage writer.
.
